﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Objects;
using Entidades;
using System.Collections;
using System.Data.SqlClient;

namespace CapaDatos.Adapters
{
   public class FamiliarAlumnoAdapter
    {
        
        BDRinconLuzEntities contexto;

        public FamiliarAlumnoAdapter()
        {
            contexto = RinconLuzContext.Context;
        }

        public FamiliarAlumnoAdapter(string edicion)
        {
            contexto = RinconLuzContext.ContextNew;
        }

        public void Agregar(Familiar entidad)
        {
            if (entidad == null)
            {
                throw new ArgumentNullException("entidad", "La entidad no puede ser nula.");
            }

            if (entidad.ChangeTracker != null && entidad.ChangeTracker.State == ObjectState.Added)
            {
                contexto.RegistrarCambios(entidad);
                contexto.RealizarCambios();
            }
        }

        public void Eliminar(Familiar entidad)
        {
            if (entidad == null)
            {
                throw new ArgumentNullException("entidad", "La entidad no puede ser nula.");
            }

            IObjectSet<Familiar> objectSet = contexto.CrearSet<Familiar>();

            objectSet.Attach(entidad);
            objectSet.DeleteObject(entidad);
        }

        public bool ExisteDNI(string dni, Guid legajo)
        {
            var query = (from v in contexto.Familiar
                         where v.DniFamiliar == dni &&
                         v.LegajoFamiliar != legajo &&
                         v.Eliminado != true
                         select v).Any();

            return query;

        }

        public bool ExisteEntidad(Guid legajo)
        {
            var query = (from v in contexto.Familiar
                         where v.LegajoFamiliar == legajo &&
                         v.Eliminado != true
                         select v).Any();

            return query;

        }


         public void Modificar(Familiar entidad)
        {
            if (entidad == null)
            {
                throw new ArgumentNullException("entidad", "La entidad no puede ser nula.");
            }

            if (entidad.ChangeTracker != null && (entidad.ChangeTracker.State & ObjectState.Deleted) != ObjectState.Deleted)
            {
                entidad.MarkAsModified();
            }

            contexto.SaveChanges();
        }


         public IEnumerable<Familiar> Obtener()
        {
            return contexto.CrearSet<Familiar>();
        }

        public Familiar ObtenerEntidad(Guid idFamiliar)
        {

            var ExisteEntidad = (from v in contexto.Familiar
                                 where v.LegajoFamiliar == idFamiliar &&
                                        v.Eliminado != true
                                 select v).Any();

            if (ExisteEntidad == true)
            {
                var Entidad = (from v in contexto.Familiar
                               where v.LegajoFamiliar == idFamiliar &&
                                     v.Eliminado != true
                               select v).First();
                return Entidad;
            }
            else
            {
                Familiar Entidad = null;
                return Entidad;
            }
           

        }

        public List<ViewEntity> ObtenerEntidades(string dni, string nombre, string apellido)
        {
            List<ViewEntity> Entidades = null;

            if (!String.IsNullOrWhiteSpace(dni))
            {

                var ExistenEntidades = (from v in contexto.Familiar
                                        where v.DniFamiliar.Contains(dni) &&
                                            v.Eliminado != true
                                        select v).Any();

                if (ExistenEntidades == true)
                {
                    var Lista = (from v in contexto.Familiar
                                where v.DniFamiliar.Contains(dni) &&
                                            v.Eliminado != true
                                select v).ToList(); 

                    Entidades = new List<ViewEntity>();

                    foreach (var item in Lista)
                    {

                        Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                    }
                 
                    return Entidades;

                }
                else
                {
                    return Entidades;
                }

            }
            else
            {
                if (!String.IsNullOrWhiteSpace(nombre) && !String.IsNullOrWhiteSpace(apellido))
                {
                    var ExistenEntidades = (from v in contexto.Familiar
                                            where v.NombreFamiliar.Contains(nombre) &&
                                            v.ApellidoFamiliar.Contains(apellido) &&
                                            v.Eliminado != true
                                            select v).Any();

                    if (ExistenEntidades == true)
                    {
                        var Lista = (from v in contexto.Familiar
                                     where v.NombreFamiliar.Contains(nombre) &&
                                        v.ApellidoFamiliar.Contains(apellido) &&
                                              v.Eliminado != true
                                     select v).ToList();

                        Entidades = new List<ViewEntity>();

                        foreach (var item in Lista)
                        {
                            
                            Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                        }
                        return Entidades;

                    }
                    else
                    {
                        return Entidades;
                    }
                    
                }
                else
                {
                    if (!String.IsNullOrWhiteSpace(nombre))
                    {
                        var ExistenEntidades = (from v in contexto.Familiar
                                                where v.NombreFamiliar.Contains(nombre) &&
                                                v.Eliminado != true
                                                select v).Any();

                        if (ExistenEntidades == true)
                        {
                            var Lista = (from v in contexto.Familiar
                                         where v.NombreFamiliar.Contains(nombre) &&                                          
                                                  v.Eliminado != true
                                         select v).ToList();

                            Entidades = new List<ViewEntity>();

                            foreach (var item in Lista)
                            {
                                Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                            }
                            return Entidades;

                        }
                        else
                        {
                            return Entidades;
                        }

                    }
                    else
                    {
                        if (!String.IsNullOrWhiteSpace(apellido))
                        {
                            var ExistenEntidades = (from v in contexto.Familiar
                                                    where v.ApellidoFamiliar.Contains(apellido) &&
                                                    v.Eliminado != true
                                                    select v).Any();

                            if (ExistenEntidades == true)
                            {
                                var Lista = (from v in contexto.Familiar
                                             where v.ApellidoFamiliar.Contains(apellido) &&
                                                      v.Eliminado != true
                                             select v).ToList();

                                Entidades = new List<ViewEntity>();


                                foreach (var item in Lista)
                                {
                                    Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                                }
                                return Entidades;

                            }
                            else
                            {
                                return Entidades;
                            }

                        }
                        else
                        {

                            var ExistenEntidades = (from v in contexto.Familiar
                                                    where  v.Eliminado != true
                                                    select v).Any();

                            if (ExistenEntidades == true)
                            {
                                var Lista = (from v in contexto.Familiar
                                             where   v.Eliminado != true
                                             select v).ToList();

                                Entidades = new List<ViewEntity>();


                                foreach (var item in Lista)
                                {
                                    Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                                }
                                return Entidades;

                            }
                            else
                            {
                                return Entidades;
                            }

                        }
                    }


                }



            }
        }



        public List<ViewEntity> ObtenerEntidades(string dni, string nombre, string apellido, Alumno alumno, string tipoFamiliar)
        {
            List<ViewEntity> Entidades = null;

            Guid idAlumno = alumno.LegajoAlumno;

            if (!String.IsNullOrWhiteSpace(dni))
            {

                var IdEntidades = (from v in contexto.Familiar
                                        where v.DniFamiliar.Contains(dni) &&
                                               v.Eliminado != true
                                        select v.LegajoFamiliar).Except(from z in contexto.AlumnoFamiliar
                                                                              where   z.LegajoAlumno == idAlumno
                                                                              select  z.LegajoFamiliar);

                if (IdEntidades.Count() > 0)
                {
                    var Lista = (from v in contexto.Familiar
                                 where IdEntidades.Contains(v.LegajoFamiliar)
                                 select v).ToList();

                    Entidades = new List<ViewEntity>();

                    foreach (var item in Lista)
                    {

                        Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                    }

                }

            }
            else
            {
                if (!String.IsNullOrWhiteSpace(nombre) && !String.IsNullOrWhiteSpace(apellido))
                {
                    var IdEntidades = (from v in contexto.Familiar
                                            where v.NombreFamiliar.Contains(nombre) &&
                                            v.ApellidoFamiliar.Contains(apellido) &&
                                            v.Eliminado != true
                                            select v.LegajoFamiliar).Except(from z in contexto.AlumnoFamiliar
                                                             where z.LegajoAlumno == idAlumno
                                                             select z.LegajoFamiliar);

                    if (IdEntidades.Count() > 0)
                    {
                        var Lista = (from v in contexto.Familiar
                                     where IdEntidades.Contains(v.LegajoFamiliar)
                                     select v).ToList();

                        Entidades = new List<ViewEntity>();

                        foreach (var item in Lista)
                        {

                            Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                        }
                    }

                }
                else
                {
                    if (!String.IsNullOrWhiteSpace(nombre))
                    {
                        var IdEntidades = (from v in contexto.Familiar
                                                where v.NombreFamiliar.Contains(nombre) &&
                                                v.Eliminado != true
                                                select v.LegajoFamiliar).Except(from z in contexto.AlumnoFamiliar
                                                                                where z.LegajoAlumno == idAlumno
                                                                                select z.LegajoFamiliar);

                        if (IdEntidades.Count() > 0)
                        {
                            var Lista = (from v in contexto.Familiar
                                         where IdEntidades.Contains(v.LegajoFamiliar)
                                         select v).ToList();

                            Entidades = new List<ViewEntity>();

                            foreach (var item in Lista)
                            {
                                Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                            }
                           

                        }

                    }
                    else
                    {
                        if (!String.IsNullOrWhiteSpace(apellido))
                        {
                            var IdEntidades = (from v in contexto.Familiar
                                                    where v.ApellidoFamiliar.Contains(apellido) &&
                                                    v.Eliminado != true
                                                    select v.LegajoFamiliar).Except(from z in contexto.AlumnoFamiliar
                                                                                    where z.LegajoAlumno == idAlumno
                                                                                    select z.LegajoFamiliar);

                            if (IdEntidades.Count() > 0)
                            {
                                var Lista = (from v in contexto.Familiar
                                             where IdEntidades.Contains(v.LegajoFamiliar)
                                             select v).ToList();

                                Entidades = new List<ViewEntity>();


                                foreach (var item in Lista)
                                {
                                    Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                                }
                               

                            }

                        }
                        else
                        {

                            var IdEntidades = (from v in contexto.Familiar
                                                    where v.Eliminado != true
                                                    select v.LegajoFamiliar).Except(from z in contexto.AlumnoFamiliar
                                                                                    where z.LegajoAlumno == idAlumno
                                                                                    select z.LegajoFamiliar);

                            if (IdEntidades.Count() > 0)
                            {
                                var Lista = (from v in contexto.Familiar
                                             where IdEntidades.Contains(v.LegajoFamiliar)
                                             select v).ToList();

                                Entidades = new List<ViewEntity>();


                                foreach (var item in Lista)
                                {
                                    Entidades.Add(new ViewEntity(item.LegajoFamiliar, item.ApellidoFamiliar + ", " + item.NombreFamiliar + " / DNI: " + item.DniFamiliar));

                                }
                               

                            }

                        }
                    }

                }


            }

            if (Entidades != null)
            {
                switch (tipoFamiliar)
                {
                    case "MadreTutora":
                        if (alumno.MadreTutora.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.MadreTutora.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.PadreTutor.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.PadreTutor.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                     

                        if (alumno.Urgencia1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.Urgencia2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.Autorizado1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.Autorizado2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }


                        break;

                    case "PadreTutor":

                        if (alumno.MadreTutora.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.MadreTutora.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.PadreTutor.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.PadreTutor.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if (encontrado)
                                Entidades.RemoveAt(i);
                        }
                        break;

                    case "Urgencia1":                        
                        if(alumno.Urgencia1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                            
                        }

                        if(alumno.Urgencia2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.Autorizado1.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeAutorizado1 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Autorizado1.LegajoFamiliar == item.Id)
                                    existeAutorizado1 = true;

                            }

                            if (existeAutorizado1 == false && alumno.Autorizado1.LegajoFamiliar != alumno.Urgencia2.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Autorizado1.LegajoFamiliar, alumno.Autorizado1.ApellidoFamiliar + ", " + alumno.Autorizado1.NombreFamiliar + " / DNI: " + alumno.Autorizado1.DniFamiliar));

                        }

                        if (alumno.Autorizado2.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeAutorizado2 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Autorizado2.LegajoFamiliar == item.Id)
                                    existeAutorizado2 = true;

                            }

                            if (existeAutorizado2 == false && alumno.Autorizado2.LegajoFamiliar != alumno.Urgencia2.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Autorizado2.LegajoFamiliar, alumno.Autorizado2.ApellidoFamiliar + ", " + alumno.Autorizado2.NombreFamiliar + " / DNI: " + alumno.Autorizado2.DniFamiliar));

                        }

                        break;

                    case "Urgencia2":
                        if(alumno.Urgencia1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if(alumno.Urgencia2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Urgencia2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }



                        if (alumno.Autorizado1.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeAutorizado1 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Autorizado1.LegajoFamiliar == item.Id)
                                    existeAutorizado1 = true;

                            }

                            if (existeAutorizado1 == false && alumno.Autorizado1.LegajoFamiliar != alumno.Urgencia1.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Autorizado1.LegajoFamiliar, alumno.Autorizado1.ApellidoFamiliar + ", " + alumno.Autorizado1.NombreFamiliar + " / DNI: " + alumno.Autorizado1.DniFamiliar));

                        }

                        if (alumno.Autorizado2.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeAutorizado2 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Autorizado2.LegajoFamiliar == item.Id)
                                    existeAutorizado2 = true;

                            }

                            if (existeAutorizado2 == false && alumno.Autorizado2.LegajoFamiliar != alumno.Urgencia1.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Autorizado2.LegajoFamiliar, alumno.Autorizado2.ApellidoFamiliar + ", " + alumno.Autorizado2.NombreFamiliar + " / DNI: " + alumno.Autorizado2.DniFamiliar));

                        }

                        break;

                    case "Autorizado1":
                       
                        if(alumno.Autorizado1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if(alumno.Autorizado2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if (alumno.Urgencia1.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeUrgencia1 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Urgencia1.LegajoFamiliar == item.Id)
                                    existeUrgencia1 = true;

                            }

                            if (existeUrgencia1 == false && alumno.Urgencia1.LegajoFamiliar != alumno.Autorizado2.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Urgencia1.LegajoFamiliar, alumno.Urgencia1.ApellidoFamiliar + ", " + alumno.Urgencia1.NombreFamiliar + " / DNI: " + alumno.Urgencia1.DniFamiliar));

                        }

                        if (alumno.Urgencia2.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeUrgencia2 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Urgencia2.LegajoFamiliar == item.Id)
                                    existeUrgencia2 = true;

                            }

                            if (existeUrgencia2 == false && alumno.Autorizado2.LegajoFamiliar != alumno.Urgencia2.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Urgencia2.LegajoFamiliar, alumno.Urgencia2.ApellidoFamiliar + ", " + alumno.Urgencia2.NombreFamiliar + " / DNI: " + alumno.Urgencia2.DniFamiliar));

                        }


                        break;

                    case "Autorizado2":
                      if(alumno.Autorizado1.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado1.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }

                        if(alumno.Autorizado2.LegajoFamiliar != Guid.Empty)
                        {
                            int i = 0;
                            bool encontrado = false;
                            foreach (var item in Entidades)
                            {
                                if (item.Id != alumno.Autorizado2.LegajoFamiliar)
                                    i++;
                                else
                                {
                                    encontrado = true;
                                    break;
                                }
                            }
                            if(encontrado)
                                Entidades.RemoveAt(i);
                        }


                        if (alumno.Urgencia1.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeUrgencia1 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Urgencia1.LegajoFamiliar == item.Id)
                                    existeUrgencia1 = true;

                            }

                            if (existeUrgencia1 == false && alumno.Urgencia1.LegajoFamiliar != alumno.Autorizado1.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Urgencia1.LegajoFamiliar, alumno.Urgencia1.ApellidoFamiliar + ", " + alumno.Urgencia1.NombreFamiliar + " / DNI: " + alumno.Urgencia1.DniFamiliar));

                        }

                        if (alumno.Urgencia2.LegajoFamiliar != Guid.Empty)
                        {
                            bool existeUrgencia2 = false;
                            foreach (var item in Entidades)
                            {
                                if (alumno.Urgencia2.LegajoFamiliar == item.Id)
                                    existeUrgencia2 = true;

                            }

                            if (existeUrgencia2 == false && alumno.Autorizado1.LegajoFamiliar != alumno.Urgencia2.LegajoFamiliar)
                                Entidades.Add(new ViewEntity(alumno.Urgencia2.LegajoFamiliar, alumno.Urgencia2.ApellidoFamiliar + ", " + alumno.Urgencia2.NombreFamiliar + " / DNI: " + alumno.Urgencia2.DniFamiliar));

                        }

                        break;

                }


            }           
            return Entidades;

        }




        public bool ExisteDNI(string dni)
        {
            var query = (from v in contexto.Familiar
                         where v.DniFamiliar == dni &&
                         v.Eliminado != true
                         select v).Any();

            return query;

        }


        public bool ExistenRelaciones(Guid idFamiliar)
        {
            var query = (from v in contexto.AlumnoFamiliar
                         where v.LegajoFamiliar == idFamiliar
                         select v).Any();

            return query;

        }



        public bool ExistenFamiliares()
        {
            var query = (from v in contexto.Familiar
                         where v.Eliminado != true
                         select v).Any();

            return query;

        }









    }
}
